$(function () {
    initWxMenu();

    $("#save").on("click",function () {
        $.confirm("自定义将提交到微信进行更新，确定吗？",function () {
            var _loading = $.loadingDialog('正在提交...');
            $.ajax({
                url: _basePath + "cms/wxMenu/publish",
                dataType:"json",
                type:"post",
                success:function (data) {
                    if(typeof data != undefined && data.resCode == 0){
                        _loading.closeDialog();
                        $.transMsg("发布成功，微信菜单将在24小时内更新");
                    }else{
                        $.transMsg(data['message']);
                        _loading.closeDialog();
                    }
                }
            })
        });
    });

});

function changeType() {
    var _type = $("input[name='type']:checked").val();
    if (_type == "click") {
        $(".msg").show();
        $(".link").hide();
        $(".mini").hide();
    } else if (_type == "view") {
        $(".msg").hide();
        $(".link").show();
        $(".mini").hide();
    } else {
        $(".msg").hide();
        $(".link").hide();
        $(".mini").show();
    }
}

function initWxMenu() {
    $.ajax({
        url: _basePath + "cms/wxMenu/menuList",
        dataType: "json",
        success: function (data) {
            if (typeof data != null && data.resCode == 0) {
                $("#preview").append(template('tpl-preview', data));
                var count = $("#preview").find(".menu").length;
                if(count < 3){
                    for(var i = count; i< 3; i++){
                        $("#preview").append(template('tpl-menuadd', {}));
                    }
                }
                initWxMenuEvent();
            } else {
                $.transMsg(data['message']);
            }
        }
    });
}

function initWxMenuEvent() {
    $(".bt-name").off('click').on("click", function () {
        var _ele = $(this), _p = $(this).parent();
        if (_p.hasClass("menu_active")) {
            _p.children(".new-sub").slideToggle("fast");
        }else {
            saveWxMenu(function (_name,_id) {
                if(_p.find("li.menu_active").length <= 0){
                    if(!isEmpty(_name)){
                        var _cur = $("div.menu_active"),_liCur = $("li.menu_active");
                        _cur.find(".bt-name").find("span").text(_name);
                        _cur.find(".bt-name").data("id",_id);
                        _cur.data("id",_id);
                        _liCur.find("a").text(_name);
                        _liCur.find("a").data("id",_id);
                    }
                    $("li").removeClass("menu_active");
                    $(".menu").removeClass("menu_active").children(".new-sub").slideUp("fast");
                    _p.children(".new-sub").slideDown("fast");
                }else{
                    if(!isEmpty(_name)){
                        _p.find("li.menu_active").find("a").text(_name);
                        _p.find("li.menu_active").find("a").data("id",_id);
                    }
                    $("li").removeClass("menu_active");
                    _p.children(".new-sub").slideToggle("fast");
                }
                //判断是否是新增
                if(_ele.find("span").hasClass("icon_plus")){
                    addWxMenu("菜单名称", 0, function (_id) {
                        _ele.attr("data-id",_id);
                        _ele.parent().attr("data-id",_id);
                        _ele.attr("name","main_menu_" + _id);
                        _ele.find("span").removeClass().text("菜单名称");
                        _p.append(template('tpl-submenuadd2',{pid:_id}));
                        _p.children(".new-sub").slideToggle("fast");
                        initWxMenuEvent();
                        getMenu(_id,_ele.data("pid"));
                    });
                }else{
                    getMenu(_ele.data("id"),_ele.data("pid"));
                }
                _p.addClass("menu_active");
            });
        }
    });

    $(".new-sub").off('click').on("click", "a", function () {
        var _ele = $(this);
        if(!_ele.parent("li").hasClass("menu_active")){
            saveWxMenu(function (_name,_id) {
                if(!isEmpty(_name)) {
                    _ele.parents("div.menu.menu_active").find(".bt-name span").text(_name);
                    _ele.parents("div.menu.menu_active").find(".bt-name").data("id", _id);
                    _ele.parents("div.menu").find("li.menu_active").find("a").text(_name);
                    _ele.parents("div.menu").find("li.menu_active").find("a").data("id", _id);
                }
                _ele.parents("div.menu").removeClass("menu_active");
                $("li").removeClass("menu_active");
                //判断是否是新增
                if(_ele.find("span").hasClass("icon_plus")){
                    var _p = _ele.parents("div.menu");
                    addWxMenu("子菜单名称", _ele.data("pid"), function (_id) {
                        _ele.attr("data-id",_id);
                        _ele.text("子菜单名称");
                        _ele.attr("name","sub_menu_" + _id);
                        if(_p.find(".new-sub ul li").length == 1 && _p.find(".bt-name").find(".pre_main_menu").length == 0){
                            _p.find(".bt-name").find("span").before("<i class='pre_main_menu'></i>");
                        }
                        if(_p.find(".new-sub ul li").length < 5){
                            _p.find(".new-sub ul").append(template('tpl-submenuadd',{pid:_p.data("id")}));
                            initWxMenuEvent();
                        }
                        getMenu(_id,_ele.data("pid"));
                    });
                }else{
                    getMenu(_ele.data("id"),_ele.data("pid"));
                }
                _ele.parent("li").addClass("menu_active");
            });
        }
    });

}

function getMenu(_id,_pid) {
    if(!isEmpty(_id)){
        $.ajax({
            url : _basePath + "cms/wxMenu/getMenu",
            dataType: "json",
            data :{id:_id},
            success:function (data) {
                if (typeof data.resultList != undefined && data.resCode == 0) {
                    $("#menuSet").html("");
                    $("#menuSet").append(template('tpl-menu', data.resultList));
                    initFormEvent();
                }else{
                    $.transMsg("获取菜单信息异常")
                }
            }
        });
    }else{
        $("#menuSet").html("");
        $("#menuSet").append(template('tpl-menu', {pid:_pid}));
    }
}

function initFormEvent() {
    $("#menuForm").off("click").on("click", "#delWxMenu",function () {
        var _id = $("#id").val(),_pid = $("#pid").val();
        $.confirm("删除后菜单下设置的内容将被删除</br>是否确认？",function () {
            delMenu(_id,function () {
                if(_pid == 0 || _pid == '0'){
                    $("[name='main_menu_" + _id + "']").parent().remove();
                    $("#preview").append(template('tpl-menuadd', {}));
                }else{
                    var _cur = $("[name='sub_menu_" + _id + "']").parent();
                    if(_cur.parents(".new-sub").find("ul li").length == 5){
                        _cur.remove();
                        _cur.parents(".new-sub").find("ul").append(template('tpl-submenuadd',{pid:_cur.data("pid")}));
                    }else{
                        _cur.remove();
                    }
                    if(_cur.parents(".new-sub").find("ul li").length == 0){
                        $("[name='main_menu_" + _pid + "']").find(".pre_main_menu").remove();
                    }
                }
                $("#menuForm").remove();
                initWxMenuEvent();
            });
        });
    });

    //素材上传
    $('.lime-upload-file').each(function () {
        new MaterialClass(this, {
            navList: [1,3]                 //1 图文素材， 2 图片素材， 3 音频素材，4 视频素材
        }, undefined, function (data) {
            $("#mUrl").val(data.path);
            if(data.typeid === 1){
                $("#key").val("news|" + data.id);
            }else if(data.typeid === 3){
                $("#key").val("voice|" + data.id);
            }
        })
    });
}

function saveWxMenu(callback) {
    if(!isEmpty($("#pid").val())){
        var _name=$("#name").val(),_type = $("input[name='type']:checked").val(),key = $("#key").val(),
            url = $("#url").val(),mini_url = $("#mini_url").val(),mUrl = $("#mUrl").val(),pagepath = $("#pagepath").val(),_id=$("#id").val();
        var _url;
        if(!isEmpty(_type) && _type === 'view'){
            _url = url;
        }else if(!isEmpty(_type) && _type === 'miniprogram'){
            _url = mini_url;
        }else{
            _url = mUrl;
        }
        $.ajax({
            url: _basePath + "cms/wxMenu/saveWxMenu",
            data :{
                id: _id,
                name: _name,
                type: _type,
                pid: $("#pid").val(),
                url: _url,
                ekey: key,
                pagepath: pagepath
            },
            dataType: "json",
            type: 'post',
            success: function (data) {
                if (typeof data != null && data.resCode == 0) {
                    if(typeof callback == 'function'){
                        callback(_name,data.resultList);
                    }
                }else{
                    $.transMsg("保存菜单失败，请重试")
                }
            }
        })
    }else{
        if(typeof callback == 'function'){
            callback();
        }
    }
}

function addWxMenu(_name,_pid,callBack) {
    $.ajax({
        url: _basePath + "cms/wxMenu/saveWxMenu",
        data :{
            name: _name,
            pid: _pid
        },
        dataType: "json",
        type: 'post',
        success: function (data) {
            if (typeof data != null && data.resCode == 0) {
                if(typeof callBack == 'function'){
                    callBack(data.resultList);
                }
            }else{
                $.transMsg("添加菜单失败，请重试")
            }
        }
    })
}

function delMenu(_id,callback) {
    if(!isEmpty(_id)){
        $.ajax({
            url : _basePath + "cms/wxMenu/delWxMenu",
            dataType: "json",
            type: 'post',
            data :{id:_id},
            success:function (data) {
                if (typeof data != null && data.resCode == 0) {
                    if(typeof callback == 'function'){
                        callback();
                    }
                }else{
                    $.transMsg(data['message'])
                }
            }
        });
    }
}